package com.piggy.logi.sys.service;

import com.piggy.common.core.web.page.IServicePlus;
import com.piggy.common.core.web.page.TableDataInfo;
import com.piggy.logi.sys.bo.LogiWaybillInvoiceEditBo;
import com.piggy.logi.sys.bo.LogiWaybillInvoiceQueryBo;
import com.piggy.logi.sys.bo.LogiWaybillIdsBo;
import com.piggy.logi.sys.domain.LogiWaybillInvoice;
import com.piggy.logi.sys.vo.LogiWaybillInvoiceVo;

/**
 * 发票管理Service接口
 *
 * @author fengxy
 * @date 2023/10/17 21:52
 **/
public interface ILogiWaybillInvoiceService extends IServicePlus<LogiWaybillInvoice> {

    /**
     * 查询开票记录列表
     */
    TableDataInfo<LogiWaybillInvoiceVo> queryPageList(LogiWaybillInvoiceQueryBo bo);

    /**
     * 根据运单id获取电子发票
     */
    String getElectronInvoice(Long waybillId);

    /**
     * 新增开票记录
     **/
    void insertByAddBo(LogiWaybillInvoiceEditBo bo);

    /**
     * 暂不开票
     **/
    void noNeed(LogiWaybillIdsBo bo);

    /**
     * 恢复开票
     **/
    void recover(LogiWaybillIdsBo bo);

    /**
     * 发送邮箱
     **/
    void sendEmail(Long id, String email);

    /**
     * 重新开票
     **/
    void reInvoice(LogiWaybillInvoiceEditBo bo);

    /**
     * 作废
     **/
    void obsolete(Long id);
}
